//
//  NWHomeCell.swift
//  微博01
//
//  Created by 牛威 on 15/12/11.
//  Copyright © 2015年 牛威. All rights reserved.
//

import UIKit

/// 头像的宽高
let TopIconViewWidth : CGFloat = 35
/// 头部视图的一些间距
let TopViewMargin : CGFloat = 12


class NWHomeCell: UITableViewCell {


    //设置模型属性
    
    var arrayM : HMViewModel? {
    
        didSet{
        
         //设置头部视图的模型数据
            
            topView.arrayM = arrayM
            
            
            contentLabel.text = arrayM?.homeModel.text
            
            //MARK:  - 动态测试行高
            
            picture.arrayM = arrayM //设置完模型之后,就有自动计算大小的能力了
            
            picture.snp_updateConstraints { (make) -> Void in
                
                //根据自己计算的约束来更新宽高
            make.height.equalTo(picture.bounds.height)
            make.width.equalTo(picture.bounds.width)
                
                //细节处理1 配图如果没有的话 内容视图距底部视图为24个点的间距 原因就是我们设置了配图距离内容和底部都为12个点的间距 当配图为0时他也仍会设置上下12个点的间距
                
                //判断配图的有无
                
//                let offset = arrayM?.thumbnailUrls?.count > 0 ? TopViewMargin : 0

//                make.top.equalTo(contentLabel.snp_bottom).offset(offset)
                
            }
        
        }
        
    }
    
    //MARK: - 设置行高 两个因素 一个是模型 一个是底部视图
    
    func rowHeight(vm : HMViewModel)->CGFloat{
    
       //1视图模型更新
        
        arrayM = vm
        
        //2强制更新布局
        
        layoutIfNeeded()
        
        //3 获取最大高度
        
        return CGRectGetMaxY(bottomView.frame)
    
    }
    
    
    
    //构造函数设置UI
    
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        
         setupUI()
        
        //更改选中样式(把选中的灰色变为无)
        
//        selectionStyle = .None
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    /// 头部视图
    private lazy var topView : NWHomeCellTop = NWHomeCellTop()
    
    /// 内容视图
     lazy var contentLabel :UILabel = UILabel(title: "venn", fontSize: 14, screenInserts: TopViewMargin)
    
    ///配图视图
     lazy var picture : NWHomePictureView = NWHomePictureView()
    
    
    /// 底部视图
     lazy var bottomView : NWHomeCellBottom = NWHomeCellBottom()
    
    //MARK: - 设置原微博cell界面
    
     func setupUI(){
        
        
        //bug1  视图刚上来的时候在bottom和sepView之间有一个分割线这是cell的分割线
        
        //需要在控制器中去设置样式

    
         //1添加控件 添加的时候是往contentView上添加的,因为你在跟cell交互的时候 为的事不影响内容显示  如果你要是往跟cell上添加的话 左滑右滑的时候会影响内容显示 所以这一点要切记
        
        contentView.addSubview(topView)
        
        contentView.addSubview(contentLabel)
        
        contentView.addSubview(picture)
        
        contentView.addSubview(bottomView)
        
         //设置头部视图
        
        topView.snp_makeConstraints { (make) -> Void in
            
           make.top.equalTo(contentView.snp_top)
           make.left.equalTo(contentView.snp_left)
           make.right.equalTo(contentView.snp_right)
           make.height.equalTo(2 * TopViewMargin + TopIconViewWidth) //在这里加一个分割视图的高度
            
        }
        
        //设置内容视图
        
        contentLabel.snp_makeConstraints { (make) -> Void in
            
            make.left.equalTo(contentView.snp_left).offset(TopViewMargin)
            make.top.equalTo(topView.snp_bottom).offset(TopViewMargin)
            
        }
        

        
        
        //设置底部视图
        
        bottomView.snp_makeConstraints { (make) -> Void in
            
            make.top.equalTo(picture.snp_bottom).offset(TopViewMargin)
            make.left.equalTo(contentView.snp_left)
            make.right.equalTo(contentView.snp_right)
            make.height.equalTo(44)//特殊数字 iOS
            
            //测试行高
//            make.bottom.equalTo(contentView.snp_bottom)

            
        }
        
    
    }
    
    
}
